package com.starleague.battletech.unit.mech;

import com.starleague.battletech.unit.IBattletechUnitComponent;

public interface IMechComponent
        extends IBattletechUnitComponent
{
    IMech getMech(); // Null if not attached

    // public boolean setHit(final IMechHitLocation mechHitLocation) throws BattletechException;
}

/*
 * 
 * protected Component(final String i_name, final battletech.component.Component.Type i_component_type, final
 * battletech.TechLevel i_tech_level, final int i_criticals) { super(); _name = i_name; _component_type =
 * i_component_type; _tech_level = i_tech_level; _criticals = i_criticals; }
 * 
 * final String _name; final battletech.component.Component.Type _component_type; final battletech.TechLevel
 * _tech_level; final int _criticals; } // // //
 * 
 * protected static final String ELEMENT_CRITICAL_SLOTS = "criticals".toLowerCase(); protected static final String
 * ELEMENT_WEIGHT = "weight".toLowerCase();
 * 
 * public class Laser extends BattleTech.Weapon { private final String ATTRIBUTE_NAME = "name".toLowerCase(); private
 * final String ATTRIBUTE_TYPE = "type".toLowerCase();
 * 
 * //private static String IS_LARGE_LASER_NAME = "IS Large Laser";
 * 
 * public static void LoadFromXMLNode(final String i_weapon_name, final Node i_weapon_node) {
 * DEBUG("XML PARSE: Weapon [LASER] " + i_weapon_name);
 * 
 * }
 * 
 * public static BattleTech.Weapon.Laser[] getListOfAll() { return new BattleTech.Weapon.Laser[] {
 * BattleTech.Weapon.Laser.CreateISLargeLaser() }; } private Laser(final String i_name, final float i_weight, final int
 * i_criticals, final int i_heat, final int i_damage, final int i_range_minumum, final int i_range_short, final int
 * i_range_medium, final int i_range_long) //final int i_range_extreme) { super(i_name, i_weight, i_criticals, i_heat,
 * i_range_minumum, i_range_short, i_range_medium, i_range_long); _damage = i_damage; }
 * 
 * final int _damage; }
 * 
 * }
 * 
 * 
 * WeaponType weapon = new WeaponType();
 * 
 * weapon.techLevel = TechConstants.T_IS_LEVEL_1; weapon.name = "Large Laser"; weapon.setInternalName(weapon.name);
 * weapon.addLookupName("IS Large Laser"); weapon.addLookupName("ISLargeLaser"); weapon.heat = 8; weapon.damage = 8;
 * weapon.ammoType = AmmoType.T_NA; weapon.minimumRange = WEAPON_NA; weapon.shortRange = 5; weapon.mediumRange = 10;
 * weapon.longRange = 15; weapon.extremeRange = 20; weapon.waterShortRange = 3; weapon.waterMediumRange = 6;
 * weapon.waterLongRange = 9; weapon.waterExtremeRange = 12; weapon.tonnage = 5.0f; weapon.criticals = 2; weapon.flags
 * |= F_LASER | F_DIRECT_FIRE | F_ENERGY | F_SINGLE_TARGET; weapon.bv = 124; weapon.cost = 100000;
 * 
 * return weapon;
 * 
 * 
 * public static void initializeTypes() { // all tech level 1 weapons EquipmentType.addType(createFlamer());
 * EquipmentType.addType(createVehicleFlamer()); EquipmentType.addType(createSmallLaser());
 * EquipmentType.addType(createMediumLaser()); EquipmentType.addType(createLargeLaser());
 * EquipmentType.addType(createPPC()); EquipmentType.addType(createAC2()); EquipmentType.addType(createAC5());
 * EquipmentType.addType(createAC10()); EquipmentType.addType(createAC20()); EquipmentType.addType(createMG());
 * EquipmentType.addType(createLRM5()); EquipmentType.addType(createLRM10()); EquipmentType.addType(createLRM15());
 * EquipmentType.addType(createLRM20()); EquipmentType.addType(createSRM2()); EquipmentType.addType(createSRM4());
 * EquipmentType.addType(createSRM6()); EquipmentType.addType(createLRT5()); EquipmentType.addType(createLRT10());
 * EquipmentType.addType(createLRT15()); EquipmentType.addType(createLRT20()); EquipmentType.addType(createSRT2());
 * EquipmentType.addType(createSRT4()); EquipmentType.addType(createSRT6());
 * 
 * 
 * 
 * 
 * 
 * 
 * // Start of Infantry weapons (Level1) EquipmentType.addType(createInfRifle()); EquipmentType.addType(createInfMG());
 * EquipmentType.addType(createInfSRM()); EquipmentType.addType(createInfLRM());
 * EquipmentType.addType(createInfLaser()); EquipmentType.addType(createInfFlamer());
 * EquipmentType.addType(createInfInfernoSRM());
 * 
 * // Start of Inner Sphere Level2 weapons EquipmentType.addType(createISERPPC());
 * EquipmentType.addType(createISERLargeLaser()); EquipmentType.addType(createISERMediumLaser());
 * EquipmentType.addType(createISERSmallLaser()); EquipmentType.addType(createISLargePulseLaser());
 * EquipmentType.addType(createISMediumPulseLaser()); EquipmentType.addType(createISSmallPulseLaser());
 * EquipmentType.addType(createISLBXAC2()); EquipmentType.addType(createISLBXAC5());
 * EquipmentType.addType(createISLBXAC10()); EquipmentType.addType(createISLBXAC20());
 * EquipmentType.addType(createISGaussRifle()); EquipmentType.addType(createISLightGaussRifle());
 * EquipmentType.addType(createISHeavyGaussRifle()); EquipmentType.addType(createISUltraAC2());
 * EquipmentType.addType(createISUltraAC5()); EquipmentType.addType(createISUltraAC10());
 * EquipmentType.addType(createISUltraAC20()); EquipmentType.addType(createISRAC2());
 * EquipmentType.addType(createISRAC5()); EquipmentType.addType(createISStreakSRM2());
 * EquipmentType.addType(createISSRM2OS()); EquipmentType.addType(createISSRT2OS());
 * EquipmentType.addType(createISStreakSRM2OS()); EquipmentType.addType(createISStreakSRM4());
 * EquipmentType.addType(createISSRM4OS()); EquipmentType.addType(createISSRT4OS());
 * EquipmentType.addType(createISStreakSRM4OS()); EquipmentType.addType(createISStreakSRM6());
 * EquipmentType.addType(createISSRM6OS()); EquipmentType.addType(createISSRT6OS());
 * EquipmentType.addType(createISStreakSRM6OS()); EquipmentType.addType(createISMRM10());
 * EquipmentType.addType(createISMRM20()); EquipmentType.addType(createISMRM30());
 * EquipmentType.addType(createISMRM40()); EquipmentType.addType(createISMRM10OS());
 * EquipmentType.addType(createISMRM20OS()); EquipmentType.addType(createISMRM30OS());
 * EquipmentType.addType(createISMRM40OS()); EquipmentType.addType(createISLRM5OS());
 * EquipmentType.addType(createISLRM10OS()); EquipmentType.addType(createISLRM15OS());
 * EquipmentType.addType(createISLRM20OS()); EquipmentType.addType(createISLRT5OS());
 * EquipmentType.addType(createISLRT10OS()); EquipmentType.addType(createISLRT15OS());
 * EquipmentType.addType(createISLRT20OS()); EquipmentType.addType(createISAMS());
 * EquipmentType.addType(createISNarc()); EquipmentType.addType(createISNarcOS());
 * EquipmentType.addType(createISImprovedNarc()); EquipmentType.addType(createISImprovedNarcOS());
 * EquipmentType.addType(createISRL10()); EquipmentType.addType(createISRL15()); EquipmentType.addType(createISRL20());
 * EquipmentType.addType(createISArrowIVSystem()); EquipmentType.addType(createISLongTom());
 * EquipmentType.addType(createISSniper()); EquipmentType.addType(createISThumper());
 * EquipmentType.addType(createISTAG()); EquipmentType.addType(createISLightTAG());
 * EquipmentType.addType(createCLTAG()); EquipmentType.addType(createCLLightTAG());
 * 
 * 
 * // Start of Inner Sphere Level3 weapons EquipmentType.addType(createISLargeXPulseLaser());
 * EquipmentType.addType(createISMediumXPulseLaser()); EquipmentType.addType(createISSmallXPulseLaser());
 * EquipmentType.addType(createISLaserAMS()); EquipmentType.addType(createISLaserAMSTHB());
 * 
 * EquipmentType.addType(createISGaussRiflePrototype()); EquipmentType.addType(createISLBXAC10Prototype());
 * EquipmentType.addType(createISUltraAC5Prototype()); EquipmentType.addType(createISERLargeLaserPrototype());
 * EquipmentType.addType(createISMediumPulseLaserPrototype()); EquipmentType.addType(createISTHBLBXAC2());
 * EquipmentType.addType(createISTHBLBXAC5()); EquipmentType.addType(createISTHBLBXAC20());
 * EquipmentType.addType(createISTHBUltraAC2()); EquipmentType.addType(createISTHBUltraAC10());
 * EquipmentType.addType(createISTHBUltraAC20()); EquipmentType.addType(createISLAC2());
 * EquipmentType.addType(createISLAC5()); EquipmentType.addType(createISHeavyFlamer());
 * EquipmentType.addType(createISExtendedLRM5()); EquipmentType.addType(createISExtendedLRM10());
 * EquipmentType.addType(createISExtendedLRM15()); EquipmentType.addType(createISExtendedLRM20());
 * EquipmentType.addType(createISThunderbolt5()); EquipmentType.addType(createISThunderbolt10());
 * EquipmentType.addType(createISThunderbolt15()); EquipmentType.addType(createISThunderbolt20());
 * EquipmentType.addType(createISHERPPC()); EquipmentType.addType(createISSNPPC());
 * EquipmentType.addType(createISRailGun()); EquipmentType.addType(createISMagshotGR());
 * EquipmentType.addType(createFireExtinguisher());
 * 
 * EquipmentType.addType(createISLightPPC()); EquipmentType.addType(createISHeavyPPC());
 * EquipmentType.addType(createISRAC10()); //MFUK EquipmentType.addType(createISRAC20()); //MFUK
 * EquipmentType.addType(createISLAC10()); //MFUK EquipmentType.addType(createISLAC20()); //MFUK
 * EquipmentType.addType(createISStreakMRM10());//guessed from fluff
 * EquipmentType.addType(createISStreakMRM20());//guessed from fluff
 * EquipmentType.addType(createISStreakMRM30());//guessed from fluff
 * EquipmentType.addType(createISStreakMRM40());//guessed from fluff EquipmentType.addType(createISHawkSRM2());
 * //guessed from fluff EquipmentType.addType(createISHawkSRM4()); //guessed from fluff
 * EquipmentType.addType(createISHawkSRM6()); //guessed from fluff EquipmentType.addType(createISPXLRM5()); //guessed
 * from fluff EquipmentType.addType(createISPXLRM10()); //guessed from fluff EquipmentType.addType(createISPXLRM15());
 * //guessed from fluff EquipmentType.addType(createISPXLRM20()); //guessed from fluff
 * EquipmentType.addType(createISMPod());
 * 
 * // Start of Clan Level2 weapons EquipmentType.addType(createCLERPPC());
 * EquipmentType.addType(createCLERLargeLaser()); EquipmentType.addType(createCLERMediumLaser());
 * EquipmentType.addType(createCLERSmallLaser()); EquipmentType.addType(createCLERMicroLaser());
 * EquipmentType.addType(createCLFlamer()); EquipmentType.addType(createCLVehicleFlamer());
 * EquipmentType.addType(createCLHeavyLargeLaser()); EquipmentType.addType(createCLHeavyMediumLaser());
 * EquipmentType.addType(createCLHeavySmallLaser()); EquipmentType.addType(createCLLargePulseLaser());
 * EquipmentType.addType(createCLMediumPulseLaser()); EquipmentType.addType(createCLSmallPulseLaser());
 * EquipmentType.addType(createCLMicroPulseLaser()); EquipmentType.addType(createCLLBXAC2());
 * EquipmentType.addType(createCLLBXAC5()); EquipmentType.addType(createCLLBXAC10());
 * EquipmentType.addType(createCLLBXAC20()); EquipmentType.addType(createCLMG());
 * EquipmentType.addType(createCLLightMG()); EquipmentType.addType(createCLHeavyMG());
 * EquipmentType.addType(createCLLRM5()); EquipmentType.addType(createCLLRM10());
 * EquipmentType.addType(createCLLRM15()); EquipmentType.addType(createCLLRM20());
 * EquipmentType.addType(createCLLRM5OS()); EquipmentType.addType(createCLLRM10OS());
 * EquipmentType.addType(createCLLRM15OS()); EquipmentType.addType(createCLLRM20OS());
 * EquipmentType.addType(createCLSRM2()); EquipmentType.addType(createCLSRM4()); EquipmentType.addType(createCLSRM6());
 * EquipmentType.addType(createCLSRM2OS()); EquipmentType.addType(createCLSRM4OS());
 * EquipmentType.addType(createCLSRM6OS()); EquipmentType.addType(createCLLRT5());
 * EquipmentType.addType(createCLLRT10()); EquipmentType.addType(createCLLRT15());
 * EquipmentType.addType(createCLLRT20()); EquipmentType.addType(createCLLRT5OS());
 * EquipmentType.addType(createCLLRT10OS()); EquipmentType.addType(createCLLRT15OS());
 * EquipmentType.addType(createCLLRT20OS()); EquipmentType.addType(createCLSRT2());
 * EquipmentType.addType(createCLSRT4()); EquipmentType.addType(createCLSRT6());
 * EquipmentType.addType(createCLSRT2OS()); EquipmentType.addType(createCLSRT4OS());
 * EquipmentType.addType(createCLSRT6OS()); EquipmentType.addType(createCLGaussRifle());
 * EquipmentType.addType(createCLUltraAC2()); EquipmentType.addType(createCLUltraAC5());
 * EquipmentType.addType(createCLUltraAC10()); EquipmentType.addType(createCLUltraAC20());
 * EquipmentType.addType(createCLStreakSRM2()); EquipmentType.addType(createCLStreakSRM4());
 * EquipmentType.addType(createCLStreakSRM6()); EquipmentType.addType(createCLStreakSRM2OS());
 * EquipmentType.addType(createCLStreakSRM4OS()); EquipmentType.addType(createCLStreakSRM6OS());
 * EquipmentType.addType(createCLATM3()); EquipmentType.addType(createCLATM6()); EquipmentType.addType(createCLATM9());
 * EquipmentType.addType(createCLATM12()); EquipmentType.addType(createCLAMS()); EquipmentType.addType(createCLNarc());
 * EquipmentType.addType(createCLNarcOS()); EquipmentType.addType(createCLArrowIVSystem());
 * EquipmentType.addType(createCLLongTom()); EquipmentType.addType(createCLSniper());
 * EquipmentType.addType(createCLThumper());
 * 
 * // Start of Clan Level3 weapons EquipmentType.addType(createCLERLargePulseLaser());
 * EquipmentType.addType(createCLERMediumPulseLaser()); EquipmentType.addType(createCLERSmallPulseLaser());
 * EquipmentType.addType(createCLRAC2()); EquipmentType.addType(createCLRAC5()); EquipmentType.addType(createCLRAC10());
 * EquipmentType.addType(createCLRAC20()); EquipmentType.addType(createCLStreakLRM5());
 * EquipmentType.addType(createCLStreakLRM10()); EquipmentType.addType(createCLStreakLRM15());
 * EquipmentType.addType(createCLStreakLRM20()); EquipmentType.addType(createCLStreakLRM5OS());
 * EquipmentType.addType(createCLStreakLRM10OS()); EquipmentType.addType(createCLStreakLRM15OS());
 * EquipmentType.addType(createCLStreakLRM20OS()); EquipmentType.addType(createCLLaserAMS());
 * EquipmentType.addType(createCLPlasmaRifle()); EquipmentType.addType(createCLMagshotGR());
 * EquipmentType.addType(createCLMPod());
 * 
 * //Protomech weapons EquipmentType.addType(createCLPROLRM1() ); EquipmentType.addType(createCLPROLRM2() );
 * EquipmentType.addType(createCLPROLRM3() ); EquipmentType.addType(createCLPROLRM4() );
 * //EquipmentType.addType(createCLPROLRM5() ); EquipmentType.addType(createCLPROLRM6() );
 * EquipmentType.addType(createCLPROLRM7() ); EquipmentType.addType(createCLPROLRM8() );
 * EquipmentType.addType(createCLPROLRM9() ); //EquipmentType.addType(createCLPROLRM10() );
 * EquipmentType.addType(createCLPROLRM11() ); EquipmentType.addType(createCLPROLRM12() );
 * EquipmentType.addType(createCLPROLRM13() ); EquipmentType.addType(createCLPROLRM14() );
 * //EquipmentType.addType(createCLPROLRM15() ); EquipmentType.addType(createCLPROLRM16() );
 * EquipmentType.addType(createCLPROLRM17() ); EquipmentType.addType(createCLPROLRM18() );
 * EquipmentType.addType(createCLPROLRM19() ); //EquipmentType.addType(createCLPROLRM20() );
 * EquipmentType.addType(createCLPROLRT1() ); EquipmentType.addType(createCLPROLRT2() );
 * EquipmentType.addType(createCLPROLRT3() ); EquipmentType.addType(createCLPROLRT4() );
 * //EquipmentType.addType(createCLPROLRT5() ); EquipmentType.addType(createCLPROLRT6() );
 * EquipmentType.addType(createCLPROLRT7() ); EquipmentType.addType(createCLPROLRT8() );
 * EquipmentType.addType(createCLPROLRT9() ); //EquipmentType.addType(createCLPROLRT10() );
 * EquipmentType.addType(createCLPROLRT11() ); EquipmentType.addType(createCLPROLRT12() );
 * EquipmentType.addType(createCLPROLRT13() ); EquipmentType.addType(createCLPROLRT14() );
 * //EquipmentType.addType(createCLPROLRT15() ); EquipmentType.addType(createCLPROLRT16() );
 * EquipmentType.addType(createCLPROLRT17() ); EquipmentType.addType(createCLPROLRT18() );
 * EquipmentType.addType(createCLPROLRT19() ); //EquipmentType.addType(createCLPROLRT20() );
 * EquipmentType.addType(createCLPROSRM1() ); EquipmentType.addType(createCLPROSRT1() );
 * EquipmentType.addType(createCLPROStreakSRM1() ); //EquipmentType.addType(createCLPROSRM2() );
 * //EquipmentType.addType(createCLPROStreakSRM2() ); //EquipmentType.addType(createCLPROSRT2() );
 * EquipmentType.addType(createCLPROSRM3() ); EquipmentType.addType(createCLPROStreakSRM3() );
 * EquipmentType.addType(createCLPROSRT3() ); //EquipmentType.addType(createCLPROSRM4() );
 * //EquipmentType.addType(createCLPROStreakSRM4() ); //EquipmentType.addType(createCLPROSRT4() );
 * EquipmentType.addType(createCLPROSRM5() ); EquipmentType.addType(createCLPROStreakSRM5() );
 * EquipmentType.addType(createCLPROSRT5() ); //EquipmentType.addType(createCLPROSRM6() );
 * //EquipmentType.addType(createCLPROStreakSRM6() ); //EquipmentType.addType(createCLPROSRT6() );
 * 
 * // Anti-Mek attacks are weapon-like in nature. EquipmentType.addType(createLegAttack() );
 * EquipmentType.addType(createSwarmMek() ); EquipmentType.addType(createStopSwarm() );
 * 
 * // Start BattleArmor weapons EquipmentType.addType(createBAMG()); EquipmentType.addType(createBASingleMG());
 * EquipmentType.addType(createBASingleFlamer()); EquipmentType.addType(createBAFlamer());
 * EquipmentType.addType(createBASmallLaser()); EquipmentType.addType(createBACLERSmallLaser());
 * EquipmentType.addType(createBATwinFlamers()); EquipmentType.addType(createBAInfernoSRM());
 * EquipmentType.addType(createBACLMicroPulseLaser()); EquipmentType.addType(createBAMicroBomb());
 * EquipmentType.addType(createBACLERMicroLaser()); EquipmentType.addType(createCLTorpedoLRM5());
 * EquipmentType.addType(createBAISMediumPulseLaser()); EquipmentType.addType(createTwinSmallPulseLaser());
 * EquipmentType.addType(createTripleSmallLaser()); EquipmentType.addType(createTripleMG());
 * EquipmentType.addType(createFenrirSRM4()); EquipmentType.addType(createBAAutoGL());
 * EquipmentType.addType(createBAMagshotGR()); EquipmentType.addType(createBAISMediumLaser());
 * EquipmentType.addType(createBAISERSmallLaser()); EquipmentType.addType(createBACompactNARC());
 * EquipmentType.addType(createSlothSmallLaser()); EquipmentType.addType(createBAMineLauncher());
 * 
 * EquipmentType.addType(createBABearhunterAC()); EquipmentType.addType(createBATwinBearhunterAC());
 * EquipmentType.addType(createBACLMediumPulseLaser()); EquipmentType.addType(createBAIncendiaryNeedler());
 * EquipmentType.addType(createBALightRecRifle()); EquipmentType.addType(createBAKingDavidLightGaussRifle());
 * EquipmentType.addType(createBAMediumRecRifle()); EquipmentType.addType(createBAPlasmaRifle());
 * EquipmentType.addType(createBASingleSmallPulseLaser()); EquipmentType.addType(createBASRM4());
 * EquipmentType.addType(createBASupportPPC()); EquipmentType.addType(createBAVibroClaws1());
 * EquipmentType.addType(createBAVibroClaws2()); EquipmentType.addType(createPhalanxSRM4());
 * EquipmentType.addType(createBAHeavyMG()); EquipmentType.addType(createBALightMG());
 * EquipmentType.addType(createBACLHeavyMediumLaser()); EquipmentType.addType(createBAHeavyRecRifle());
 * EquipmentType.addType(createBACLHeavySmallLaser()); EquipmentType.addType(createBACLERMediumLaser());
 * EquipmentType.addType(createBACLSmallPulseLaser()); EquipmentType.addType(createBAISLightMortar());
 * EquipmentType.addType(createBAISHeavyMortar()); EquipmentType.addType(createBAMicroGrenade());
 * EquipmentType.addType(createBAGrandMaulerGauss()); EquipmentType.addType(createBATsunamiGaussRifle());
 * EquipmentType.addType(createCLAdvancedSRM1()); EquipmentType.addType(createCLAdvancedSRM2());
 * EquipmentType.addType(createCLAdvancedSRM3()); EquipmentType.addType(createCLAdvancedSRM4());
 * EquipmentType.addType(createBAAdvancedSRM5()); EquipmentType.addType(createCLAdvancedSRM6());
 * EquipmentType.addType(createISLAWLauncher()); EquipmentType.addType(createISLAW2Launcher());
 * EquipmentType.addType(createISLAW3Launcher()); EquipmentType.addType(createISLAW4Launcher());
 * EquipmentType.addType(createISLAW5Launcher()); EquipmentType.addType(createISMRM1());
 * EquipmentType.addType(createISMRM2()); EquipmentType.addType(createISMRM3()); EquipmentType.addType(createISMRM4());
 * EquipmentType.addType(createISMRM5()); EquipmentType.addType(createLRM1()); EquipmentType.addType(createLRM2());
 * EquipmentType.addType(createLRM3()); EquipmentType.addType(createLRM4());
 * EquipmentType.addType(createBADavidGaussRifle());
 * 
 * // hack for C3 Master TAG EquipmentType.addType( createC3M() );
 */
